The generator matrix

 1  0  0  0  0  0  0  0  1  1  1  0  1  0  X  1
 0  1  0  0  0  0  0  0  0  0  0  1  1  1  X  X
 0  0  1  0  0  0  0  0  0  0  1  0  X  X  1  1
 0  0  0  1  0  0  0  0  1  0  X  X  1  X  1  0
 0  0  0  0  1  0  0  0  1  X  0  X X+1  1 X+1  1
 0  0  0  0  0  1  0  0  1  X X+1  1  0  0 X+1 X+1
 0  0  0  0  0  0  1  0  1 X+1  X X+1 X+1  1  1  1
 0  0  0  0  0  0  0  1  X  1  1 X+1  X  1  1  0

generates a code of length 16 over Z2[X]/(X^2) who�s minimum homogenous weight is 8.

Homogenous weight enumerator: w(x)=1x^0+377x^8+2020x^10+6652x^12+14592x^14+18403x^16+14184x^18+7008x^20+1952x^22+323x^24+20x^26+4x^28

The gray image is a linear code over GF(2) with n=32, k=16 and d=8.
As d=8 is an upper bound for linear (32,16,2)-codes, this code is optimal over Z2[X]/(X^2) for dimension 16.
This code was found by Heurico 1.11 in 91.3 seconds.